shell IFS 配合 read 读文件

您所在的位置:网站首页 shell中read -r shell IFS 配合 read 读文件

shell IFS 配合 read 读文件

2024-07-14 22:16| 来源: 网络整理| 查看: 265

参考《linux shell核心编程指南》3.5 ,无需仔细阅读,可以当做工具书使用。

在Shell中使用内部变量IFS(Internal Field Seprator)来决定项目列表或值列表的分隔符,IFS的默认值为空格、Tab制表符或换行符。使用for循环读取项目列表或值列表时,就会根据IFS的值判断列表中值的个数,最终决定循环的次数。例如,A="hello the world",当使用空格作分隔符时,变量A的值有三列。但是,当使用字母t作为分隔符时,变量A的值就有两列。所以当使用不同的分隔符时读取数据的结果也会有很大差别,这点在编写脚本时一定要注意!IFS的多个值之间是“或”关系,所以for循环在读取列表时,数据可以使用空格分隔,或使用Tab制表符分隔,或使用换行符对数据进行分隔。因为空格、Tab制表符和换行符都属于ASCII码表中的控制字符,是不可显示的内容,所以正常使用echo命令显示该变量的值时,是看不到内容的,但是可以通过od命令将数据转换为八进制数据后再查看。

 

#!/bin/bash while IFS=":" READ user pass uid gid info home shell do echo "heihei" done < /etc/passwd

上面的可以联想到cat,  使用<<符号可以将数据内容重定向传递给前面的一个命令,作为命令的输入。

cat > 1.txt


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3